vec3 grid(in vec2 p) {
    vec3 cor = vec3(0.0);
//目的都是获取0-0.5之间的数据 因为一、二、三、四 象限分为了四大部分变化
// 范围都是0-0.5，所以分为了四大部分
    vec2 cell = fract(p.xy);
    if(cell.x < 2.0 * fwidth(p.x)) {
        cor = vec3(1.0, 1.0, 1.0);
    } else if(cell.y < 2.0 * fwidth(p.y)) {
        cor = vec3(1.0, 1.0, 1.0);
    }
    if(abs(p.x) < fwidth(p.x)) {
        cor = vec3(0.0, 1.0, 0.0);
    } else if(abs(p.y) < fwidth(p.y)) {
        cor = vec3(1.0, 0.0, 0.0);
    }
    return cor;
}
vec2 fixUV(in vec2 fragCoord) {
    return 6.0 * (fragCoord - 0.5 * iResolution.xy) / iResolution.xx;
}

vec3 segment(in vec2 p) {
    vec3 cor = vec3(0.0);
    if(p.x > 0.7 && p.x < 0.8) {
        cor = vec3(1.0);
        if(p.y > 0.7 || p.y < -0.7) {
            cor = vec3(0.0);
        }
    }
    return cor;
}

float segment1(vec2 st, float k, float t, float line_width) {

        //斜线斜率
     vec2 rr= vec2(0.0);
    //截取线段
     if(distance(st,rr)<3.0){
        float y = k * st.x + t;
        //小于y 返回0 大于st.y 返回1 两个值相减得到的就是竖线
        return step(y, st.y) - step(y + line_width, st.y);
     }
    

}

void mainImage(out vec4 fragColor, in vec2 fragCoord) {
    vec2 p = fixUV(fragCoord);
    vec3 clor1 = segment(p);
    vec3 color2 = vec3(segment1(p, 2.0, 0.0, 0.1));
    vec3 color = grid(p);
    fragColor = vec4(color + clor1 + color2, 1.0);

}